home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / muds / pennmush.000 / pennmush-1.50-p8-linux.tar / pennmush / CHANGES-3 < prev    next >
Text File  |  1993-01-15  |  17KB  |  299 lines

  1. This is a continuation of the change log for PennMUSH, covering Release 
  2. Levels 1.18 and 1.19.
  3.  
  4. ----------------------------------------------------------------------------
  5. February 25, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu) Release Level 1.18
  6.  
  7. mail.c is problematical. It's an older version of Spellbound mail, and has a
  8. nasty tendency to crash the MUSH from time to time. It's generally safe to
  9. use, but if you have a problem with repeated crashes, wipe out the mail
  10. database.
  11.  
  12.   -- New functions
  13.     * ALPHAMIN() and ALPHAMAX() -- return the smallest/biggest word,
  14.         lexicographically, in a comma-separated list of up to 10 arguments
  15.     * DIE() -- "rolls" an n-sided die m times, simulating things like "2d6"
  16.     * LATTR() -- returns a list of attributes on an object
  17.     * LSEARCH() -- similar to @search, returns a list of dbrefs
  18.     * SECURE() -- smashes dangerous characters in a string
  19.     * SECS() -- returns number of seconds since midnight Jan. 1, 1970
  20.     * SORT() -- lexicographically sorts a comma-separated list of up
  21.         to ten arguments, returning a space-separated list of words
  22.     * ZONE() -- returns the zone of an object
  23.   -- New commands
  24.     * brief -- like "examine", but does not display attributes
  25.     * @chzone -- change zone of an object
  26.     * @chzoneall -- change zone of all objects belonging to a player
  27.     * @select -- like @switch, but only executes the actions matching the
  28.     first target it finds (like 2.0 @switch/first)
  29.     * think -- send a private message to yourself
  30.     * use -- use an object, triggering @use/@ouse/@ause
  31.     * @zemit: emit to all rooms in a zone
  32.   -- New flags
  33.     * MYOPIC -- player sees everything like he doesn't own it (no dbref
  34.     numbers and flags appear when you look at something)
  35.     * TRANSPARENT on rooms -- does "long format" exit names in the room, like:
  36.     Obvious exits:
  37.      North leads to Joe's room.
  38.      East leads to Kitchens.
  39.   -- New features
  40.     * Uselocks on objects allow only those that pass the @ulock to use
  41.     them. This provides for a secure way to get around the problems
  42.     with INHERIT, and regular security problems, since @ulocks also
  43.     block $commands from unauthorized users.
  44.     * @use/@ouse/@ause attributes added, triggered by "use" command.
  45.     The old "@use/@does" pair is preserved as "@use-does/@does",
  46.     for backward compatibility.
  47.     * Zones implemented. Please see the help for details.
  48.     Anyone who passes the enter lock of a zone object controls all
  49.         objects in that zone - i.e. has the equivalent of wizard privs
  50.       in that zone.
  51.     In addition to regular command matching, you also match commands
  52.       in the zone of your current room, and your person zone. These
  53.       are $commands on the master object for the zone. This matching
  54.       occurs between regular $command matching and global matching.
  55.     * MUCK-style parent rooms implemented as a subset of zones. Parent rooms
  56.     are ZMOs which are rooms. Parent room exits and $commands on objects
  57.     in the parent room are checked before local zone commands.
  58.     * "Events" file, compile-time option, a file like news and help
  59.     * Config options DARK_EXITS, TRANSPARENT_EXITS, and TRANSPARENT_ROOMS,
  60.     which are building defaults.
  61.     * Site lockout has been improved. It now does wildcards, thanks to
  62.     T'nor of SouCon MUSH. It is also possible to do registration on sites
  63.     as well as lockout.
  64.   -- Fixes and other changes
  65.     * the usual minor bugfixes
  66.     * ELOCK() no longer requires player to control either object being
  67.     evaluated by the function.
  68.     * @chown and related commands now remove the INHERIT and ROYALTY flags.
  69.     * @search (and LSEARCH) now allow class restriction "zone".
  70.     * fixed bug which allowed wizards to set objects they didn't own
  71.         WIZARD (this should be a god-only priv)
  72.     * if an object pages a NOSPOOF player, the object's number appears
  73.         before the message, in a fashion similar to NOSPOOF-flagged emits.
  74.     * fixed a coredump bug in "give" which was triggered by a wizard "giving"
  75.     a player extremely large numbers of negative pennies.
  76.     * fixed a typo in game.c in LOG_FAILED_COMMANDS
  77.     * startup sequence now prints warning in log if PLAYER_START,
  78.     MASTER_ROOM, or GUEST_PLAYER are set to invalid values.
  79.     * @config expanded to give more detailed, informative output.
  80.     * cleaned up STICKY code and corrected the help text
  81.     * core dump bug involving rooms and exits trying to execute $commands
  82.     has been fixed (thanks to GlobalMUSH for pointing this problem out).
  83.     * "throw" as an alias for "drop" has been removed
  84.     * others in the room are now notified when someone takes something
  85.     with "<person> takes <object>" (instead of nothing, if no osucc
  86.     message was set). The drop message has been changed to 
  87.     "<person> drops <object>", so the verb tenses are the same.
  88.     * say now has a comma (grammar! What a concept!)
  89.     * a small bug involving @clone'ing exits in rooms you couldn't link
  90.     to has been removed
  91.     * you can now link drop-tos in rooms to "home"
  92.     * @search now outputs rooms in a format like things (it shows you
  93.     the owner of the room)
  94.     * NOSPOOF and TERSE are now player flags; the Nospoof/Terseness of an
  95.     object is dependent upon its owner's status.
  96.     * upped MAX_COMMAND_LEN to 1 K (doubled the maximum, in other words).
  97.     BUFFER_LEN is still only 4 K, though. I don't think this should
  98.     break anything.
  99.     * did little tweaks which should remove almost all the compiler warnings
  100.     * some minor bugfixes in bsd.c
  101.     * inactivity_check moved to timer.c, where it's done with db fixups
  102.     * @destroy's output is more informative now
  103.     * you must know a player's password in order to rename him (in the past,
  104.     a wizard could use his password instead, and an object owned by
  105.     the player didn't need a password at all)
  106.     * fixed coredump bug in @clone caused by the function not duplicating
  107.     enter or use locks.
  108.     * alphabetized flag listings somewhat
  109.     * IDESC now does pronoun substitution
  110.     * fixed stupid problem in some call to do_move in game.c - initially
  111.     forgot to pass a type flag, causing problems on some machines
  112.     * quick #ifndef fix to externs.h that should help convince SysV machines
  113.     that they like MUSH. Thanks to Delany for this one.
  114.     * rewrote NOSPOOF code in do_page so it OUGHT to work on all machines
  115.     (certain systems couldn't take the null string at the beginning of
  116.     a call to print, in the original version of this)
  117. ----------------------------------------------------------------------------
  118. May 5, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu)  Release level 1.19
  119.  
  120.   -- New flags
  121.     * ANSI_DISPLAY - bold-hilites names of attributes, making it easier
  122.     to read long object listings.
  123.     * AUDIBLE - exits propagate sound to next room. The room must be set
  124.     AUDIBLE in order for checking to occur. @prefix is prepended to
  125.     message. @filter filters out stuff that matches anything in a
  126.     list of comma-separated patterns.
  127.     A similar thing is true of objects set AUDIBLE; messages from
  128.     within them are propagated to the outside world.
  129.     (Re)Setting stuff AUDIBLE causes a "now broadcasting" or
  130.     "no longer broadcasting" message to be emitted.
  131.     * LISTENER - objects which use ^ patterns must now have this set.
  132.     The benefit is some increased speed, and all objects which are
  133.     LISTENER are checked for ^ patterns even if they have a @listen.
  134.         Setting something LISTENER triggers the "grows ears and can now hear"
  135.     message. When an object loses its listen status (not puppet, not
  136.     listener, and has no @listen), it "loses its ears and becomes deaf"
  137.     * MONITOR - wiz-settable flag, notifies player of connects/disconnects
  138.     * STARTUP flag added. Should massively increase efficiency on startup.
  139.          Need to define ADD_STARTUP_FLAG when using this for the first time.
  140.   -- New functions
  141.     * ABS() returns the absolute value of a number.
  142.     * BEEP() -- send up to five "alert" bell characters
  143.     * EVAL() - gets an attribute from an object and does pronoun subst.
  144.     * LOCATE() -- controlled match with respect to a certain object.
  145.     * LSTATS() -- returns a breakdown of player's stuff in list form
  146.     * PMATCH() - partial name-match, returns dbref number of player
  147.     * ROOM() -- returns absolute location of an object.
  148.     * SIGN() returns 0, 1, or -1 depending on the sign of a number.
  149.     * SPACE() -- prints a certain number of spaces
  150.     * STRCAT() concatenates two strings with no space between them.
  151.     * UFUN() -- takes a "function name", which is an arbitrary attribute
  152.     on an object, and arguments, and plugs it through the functions.
  153.         Allows you to define your own functions.
  154.     * ZFUN() -- like UFUN, but reads the attribute from the ZMO.
  155.   -- New features
  156.     * Name lockout -- a file definable in config.h contains a list of
  157.         player names which may not be used. Both player creation and
  158.     player name changes check this (the ok_player_name function
  159.     now calls a new predicate forbidden_name)
  160.     * @map command - takes a list and a function, and maps the function
  161.     onto the list, returning a list. This is basically a variation
  162.     on @dolist.
  163.     * @daytime command - turns off @find, @entrances, @search, and LSEARCH()
  164.     Useful when running on a machine that you don't want to munch a lot
  165.     of CPU time on.
  166.     * Enter and exit aliases can now have semi-colon separated lists
  167.     * Teleport locks added as a subset of enter locks.
  168.     * Wizards that reach IDLE_TIMEOUT and are set UNFINDABLE are automatically
  169.     set DARK.
  170.     * "@uptime" command, gives system uptime. Wizards only.
  171.     * T'nor's improved @halt code added -- allows clearing of a single
  172.     object's wait queue. IMMORTAL flag prevents halting of objects.
  173.     * Chat system! To add new channels or change existing ones, check 
  174.     chat.h, look.c, predicates.c, and speech.c  (grep for
  175.     CHAT_SYSTEM to find the relevant code)
  176.     * Maximum login limit, automatically turns logins on and off.
  177.     * Global and zone aconnect/disconnects added.
  178.     * Immortal objects no longer use up money.
  179.     * Royalty no longer uses money, nor is it subject to quota or
  180.     BUILDER bit restrictions (i.e.treated like wizards are wrt building)
  181.     * Added '@@' comment signal.
  182.     * Added new match type, match_controlled_absolute(). This allows players
  183.     to match things by number, if they control them. Players can now do
  184.     remote look and get on objects that they own (the new match predicate
  185.     is in other functions as well, but those two are the major ones).
  186.     * Game now tells you the time and place of your last login at connect.
  187.     * Hilites using ANSI control characters have been added, for attribute
  188.     examines. The AUDIBLE flag is overloaded; it's an unpleasant but
  189.     workable kludge.
  190.   -- Fixes
  191.     * added an extern declaration of match_thing to attrib.c so all
  192.     compilers deal with the LATTR code
  193.     * fixed move.c's do_drop to handle dropping of objects in a TEMPLE
  194.     correctly. Based on Jim Miller's patch (retief@iastate.edu)
  195.     I also patched it so everything takes place in a logical order
  196.     and that the stuff which ought to be #ifdef'ed, is.
  197.     * put in the "rob" code again, as a config option (thanks to Jim
  198.     Miller for pointing out that it never got used)
  199.     * STICKY flag split into a thing flag and a room flag (running into huge
  200.     numbers of flags, and therefore making an attempt to compress the 
  201.     ones that are only applicable to two or fewer types)
  202.     * fixed ^patterns so %N substitution works properly
  203.     * fixed bug in did_it involving charges. (Sheesh. This bug's been
  204.     around for a _long_ time. Dunno why no one pointed it out before.)
  205.     * recoded FLIP function - now calls a generic utility function which
  206.     reverses a string, using pointers (much cleaner now).
  207.     * parent room checks fixed, thanks to Jim Miller. Another stupid bug.
  208.     * only rooms may have a parent room as their zone
  209.     * added MUSH restart time to the top of the MUSH log, static variable
  210.     start_time added.
  211.     * @version now gives the MUSH name and time of last restart in addition
  212.     to the code version.
  213.     * Behavior of @chzone changed by popular request - any wizard can
  214.     @chzone a player now
  215.     * Kludges to try to prevent crashes caused by huge lock unparses:
  216.     do_lock and unparse_boolexp check for overflowing the buffer length,
  217.     kinda sorta. It's still possible to crash the game, but it's highly
  218.     improbable. A real fix would require dynamically allocating space.
  219.     * Added HP-UX compatibility, thanks to Schlake (craig@minos.nmt.edu)
  220.     Also added his other minor fixes, like properly commenting out
  221.     trailing text after #endifs, etc.
  222.     * Did some minor cleanup using the IS macro instead of a written-out
  223.     type and flag check
  224.     * You cannot see what an OPAQUE object is carrying even if you own
  225.     or control it (this is the way it should have been to begin with)
  226.     * Fixed some more inappropriate calls to toupper() - confuses
  227.     DECs. Used UPCASE macro instead.
  228.     * LINK_OK is now valid for all types (dunno why this was changed
  229.     in the 1.15 code, didn't realize it 'til now)
  230.     * things that are LINK_OK can now be @triggered even if the
  231.     INHERIT check fails. This provides some of the security of
  232.     INHERIT but allows you to avoid clumsy workarounds for
  233.     objects that only need to @trigger something. The control
  234.     checks still apply.
  235.     * Rooms-going-away with the floor falling out from under player
  236.     messages should hopefully be fixed. The exact origin of this
  237.     problem isn't known, but a check in dest_info for NOTHING
  238.     should take care of it. It's a bug dating back to at least
  239.     PernMUSH 1.06, but it seems to have increased in frequency 
  240.     with this latest code, for an unknown reason.
  241.     * Fix to display page-returns as 12 hours instead of 24 hours.
  242.     Can #define MILITARY_TIME
  243.     * added macro Mobile(x). This is true if x is type THING or PLAYER.
  244.     ((Typeof(player) == TYPE_PLAYER) || (Typeof(player) == TYPE_THING))
  245.     is now Mobile(player).
  246.     ((Typeof(player) == TYPE_ROOM) || (Typeof(player) == TYPE_EXIT))
  247.     is now !Mobile(x).
  248.     * config option PARANOID_NOSPOOF added. If this is defined, nospoof
  249.     also shows the object number of the spoofer.
  250.     * you can no longer link something to itself.
  251.     * added GoodObject(x) macro which checks if x is >= 0 and <= db_top
  252.     * fixed bug in do_trigger which caused crashes if exits linked to home
  253.     attempted to trigger stuff.
  254.     * rewrote raw_broadcast using varargs.
  255.     * prevent people from linking homes to GOING objects
  256.     * atr_comm_match now automagically returns 0 if the checked object is
  257.     HALT, since even if a command were matched, it couldn't execute
  258.     it anyway.
  259.     * Fixed an #ifdef-#endif problem in bsd.c, thanks to Czakari.
  260.     * Changed PMATCH to work exactly like page-matching does. It first checks
  261.     the normal player lookup table; if nothing is found, then it calls
  262.     the connected player partial lookup. The error messages are now
  263.     #-1 NOTHING or #-2 AMBIGUOUS. This is a more useful behavior.
  264.         It notifies of the error, and returns the number.
  265.     * SUSPECT flag is no longer detectable by non-priv'ed players
  266.     * flags are shown if objects are VISUAL or DESTROY_OK, always
  267.     * @poor now gives the player a message
  268.     * fixed check for TEMPLE room so Verbose objects don't count as
  269.     Temples! Bleah! (*sigh* still tracking down all the places
  270.     where the IS macro should be used...)
  271.     * LOC(), HOME() now always works for royalty. (Oversight)
  272.     * @poll changes are logged
  273.     * @chzone on players no longer nukes the W, r, and I flags.
  274.     * checks on GET() and attribute flags changed -- an attribute
  275.     which is flagged AF_DARK is no longer gettable at all
  276.     (like the password! Bleah!)
  277.     * @chownall and @chzoneall now provide object count.
  278.     * the value of a cloned object is now the same as the value of its
  279.     template object
  280.     * fixed immortal/unfindable problem in do_kill with an IS macro
  281.     * @listmotd lists all the motds for royalty. Should have been this way
  282.     before, since royalty get the wizmotd at login.
  283.     * fixed weird bug that caused players to become owned by God. If someone
  284.     tried to call atr_add with thing = 0, the privs were done as GOD
  285.     and the owner of the caller became owned by GOD. Why #0 was treated
  286.     as a special case baffles me.
  287.     * Only objects with the same owner can set each other INHERIT. Helps
  288.     plug a zone-related security hole.
  289.     * Zone control does not extend to objects set INHERIT.
  290.     * Fixed bug in create.c that allowed non-builders to link exits and
  291.     seize unlinked ones, even though they were told they couldn't.
  292.     * Find now returns the number of objects found
  293.     * Newlines and 'alert' bell characters can no longer be in @doings.
  294.   -- Some stuff on versions:
  295.     * DB header line is +V2 for old format (no changes),
  296.       +V258 (256+2) for new locks and zones,
  297.       +V514 for that plus chat system,
  298.       anything else is +V770 (256*3 + 2)
  299.